#ifndef MOVE_BEHAVIOR_H
#define MOVE_BEHAVIOR_H

#include <ctime>

enum Proximity_dir{
	UP = 0,
	DOWN, 
	LEFT,
	RIGHT,

	PROXIMITY_COUNT
};

class Background;
class Character;


class MoveBehavior
{
protected:
	Proximity_dir mFacing;

	void setFacing(const Proximity_dir nDir){	mFacing = nDir;	}

public:

	MoveBehavior():mFacing(PROXIMITY_COUNT){}

	virtual void perform(Character* movingAgent, const Background* bg) = 0;
	virtual void reset() = 0;
	//virtual void seedMove(time_t nSeed);

	//BackgroundElement* mAdjacentTiles[4];
	const Proximity_dir getFacing() const { return mFacing; }
};

#endif //MOVE_BEHAVIOR_H